<?php

namespace app\admin\controller;

use think\auth\Auth;
use think\Controller;

class BaseController extends Controller
{
    public function _initialize()
    {
        //得到当前的控制器
        $controller = \request()->controller();
        //得到当前的方法
        $action = \request()->action();
        //得到当前url
        $url = strtolower($controller . '/' . $action);
        $admin = session('admin');
        if ($admin === null && !in_array($url, config('allow_url'))) {
            return $this->error('您还没有登录，请先去登录', 'Admin/login');
        }
        // 获取auth实例
        $auth = Auth::instance();
        // 检测权限，排除超级管理员
        if ($admin['id'] !== 1) {
            if (!$auth->check($url, $admin['id']) && !in_array($url, config('rule_url'))) {// 第一个参数是规则名称,第二个参数是用户UID
                return $this->error('您没有' . Db::name('auth_rule')->where('name', $url)->value('title') . '权限');
            }
        }
        parent::_initialize();
    }
}
